<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Jetson Inference: Networking</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="NVLogo_2D.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Jetson Inference
   </div>
   <div id="projectbrief">DNN Vision Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__network.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Networking<div class="ingroups"><a class="el" href="group__util.html">Utilities Library (jetson-utils)</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>TCP/UDP sockets and IP address manipulation.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:structNetworkInterface"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#structNetworkInterface">NetworkInterface</a></td></tr>
<tr class="memdesc:structNetworkInterface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Info about a particular network interface.  <a href="group__network.html#structNetworkInterface">More...</a><br /></td></tr>
<tr class="separator:structNetworkInterface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:classRTSPServer"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#classRTSPServer">RTSPServer</a></td></tr>
<tr class="memdesc:classRTSPServer"><td class="mdescLeft">&#160;</td><td class="mdescRight">RTSP server for transmitting encoded GStreamer pipelines to client devices.  <a href="group__network.html#classRTSPServer">More...</a><br /></td></tr>
<tr class="separator:classRTSPServer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:classSocket"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#classSocket">Socket</a></td></tr>
<tr class="memdesc:classSocket"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="group__network.html#classSocket" title="The Socket class provides TCP or UDP ethernet networking.">Socket</a> class provides TCP or UDP ethernet networking.  <a href="group__network.html#classSocket">More...</a><br /></td></tr>
<tr class="separator:classSocket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structWebRTCPeer"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#structWebRTCPeer">WebRTCPeer</a></td></tr>
<tr class="memdesc:structWebRTCPeer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remote peer that has connected.  <a href="group__network.html#structWebRTCPeer">More...</a><br /></td></tr>
<tr class="separator:structWebRTCPeer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:classWebRTCServer"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#classWebRTCServer">WebRTCServer</a></td></tr>
<tr class="memdesc:classWebRTCServer"><td class="mdescLeft">&#160;</td><td class="mdescRight">WebRTC signalling server for establishing and negotiating connections with peers for bi-directional media streaming.  <a href="group__network.html#classWebRTCServer">More...</a><br /></td></tr>
<tr class="separator:classWebRTCServer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1425b28c4289aa721ccbcdc804f1b511"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga1425b28c4289aa721ccbcdc804f1b511">INET4_ADDRLEN</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga1425b28c4289aa721ccbcdc804f1b511"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of an IPv4 address (4 bytes) This is meant to compliment POSIX's INET4_ADDRSTRLEN (16)  <a href="group__network.html#ga1425b28c4289aa721ccbcdc804f1b511">More...</a><br /></td></tr>
<tr class="separator:ga1425b28c4289aa721ccbcdc804f1b511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab0a486cc9b29e51019a796a67d452d8c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gab0a486cc9b29e51019a796a67d452d8c">INET6_ADDRLEN</a>&#160;&#160;&#160;16</td></tr>
<tr class="memdesc:gab0a486cc9b29e51019a796a67d452d8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of an IPv6 address (16 bytes) This is meant to compliment POSIX's INET6_ADDRSTRLEN (46)  <a href="group__network.html#gab0a486cc9b29e51019a796a67d452d8c">More...</a><br /></td></tr>
<tr class="separator:gab0a486cc9b29e51019a796a67d452d8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaadcbced28f4da19dc28dafcb1caf262b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gaadcbced28f4da19dc28dafcb1caf262b">LOG_NETWORK</a>&#160;&#160;&#160;&quot;[network] &quot;</td></tr>
<tr class="memdesc:gaadcbced28f4da19dc28dafcb1caf262b"><td class="mdescLeft">&#160;</td><td class="mdescRight">LOG_NETWORK logging string.  <a href="group__network.html#gaadcbced28f4da19dc28dafcb1caf262b">More...</a><br /></td></tr>
<tr class="separator:gaadcbced28f4da19dc28dafcb1caf262b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad453571ec9bbc7fc4e595298a9380e53"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gad453571ec9bbc7fc4e595298a9380e53">RTSP_DEFAULT_PORT</a>&#160;&#160;&#160;8554</td></tr>
<tr class="memdesc:gad453571ec9bbc7fc4e595298a9380e53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default port used by RTSP server.  <a href="group__network.html#gad453571ec9bbc7fc4e595298a9380e53">More...</a><br /></td></tr>
<tr class="separator:gad453571ec9bbc7fc4e595298a9380e53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7305b232ee51e64c18323093003a398"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gaa7305b232ee51e64c18323093003a398">LOG_RTSP</a>&#160;&#160;&#160;&quot;[rtsp]   &quot;</td></tr>
<tr class="memdesc:gaa7305b232ee51e64c18323093003a398"><td class="mdescLeft">&#160;</td><td class="mdescRight">RTSP logging prefix.  <a href="group__network.html#gaa7305b232ee51e64c18323093003a398">More...</a><br /></td></tr>
<tr class="separator:gaa7305b232ee51e64c18323093003a398"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0168a2334e9e1e13b83a665c8cce0742"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga0168a2334e9e1e13b83a665c8cce0742">WEBRTC_DEFAULT_PORT</a>&#160;&#160;&#160;41567</td></tr>
<tr class="memdesc:ga0168a2334e9e1e13b83a665c8cce0742"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default HTTP/websocket port used by the WebRTC server.  <a href="group__network.html#ga0168a2334e9e1e13b83a665c8cce0742">More...</a><br /></td></tr>
<tr class="separator:ga0168a2334e9e1e13b83a665c8cce0742"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99b10c89b7c09a0c753f241f9e74c894"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga99b10c89b7c09a0c753f241f9e74c894">WEBRTC_DEFAULT_STUN_SERVER</a>&#160;&#160;&#160;&quot;stun.l.google.com:19302&quot;</td></tr>
<tr class="memdesc:ga99b10c89b7c09a0c753f241f9e74c894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default STUN server used for WebRTC.  <a href="group__network.html#ga99b10c89b7c09a0c753f241f9e74c894">More...</a><br /></td></tr>
<tr class="separator:ga99b10c89b7c09a0c753f241f9e74c894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14978cf9893d6b4dc89019227ac121e7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga14978cf9893d6b4dc89019227ac121e7">LOG_WEBRTC</a>&#160;&#160;&#160;&quot;[webrtc] &quot;</td></tr>
<tr class="memdesc:ga14978cf9893d6b4dc89019227ac121e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">WebRTC logging prefix.  <a href="group__network.html#ga14978cf9893d6b4dc89019227ac121e7">More...</a><br /></td></tr>
<tr class="separator:ga14978cf9893d6b4dc89019227ac121e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaa78c7398fa81f7f62aa233159d4d8d97"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gaa78c7398fa81f7f62aa233159d4d8d97">SocketType</a> { <a class="el" href="group__network.html#ggaa78c7398fa81f7f62aa233159d4d8d97a180747545a72ff6d0fd0569e781aefd5">SOCKET_UDP</a> = 0, 
<a class="el" href="group__network.html#ggaa78c7398fa81f7f62aa233159d4d8d97a2843397fd39bd96681bca78a8aa03096">SOCKET_TCP</a> = 1
 }</td></tr>
<tr class="memdesc:gaa78c7398fa81f7f62aa233159d4d8d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">TCP/UDP enumeration.  <a href="group__network.html#gaa78c7398fa81f7f62aa233159d4d8d97">More...</a><br /></td></tr>
<tr class="separator:gaa78c7398fa81f7f62aa233159d4d8d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfc2d28deff979bf1183220b57b78bd4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gabfc2d28deff979bf1183220b57b78bd4">WebRTCFlags</a> { <br />
&#160;&#160;<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4a819f229f6bfeb116f686451ecdec02f0">WEBRTC_PRIVATE</a> = 0, 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4a6679628f8219a94c62e06c70190bbf93">WEBRTC_PUBLIC</a> = (1 &lt;&lt; 1), 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4ae076480a0c0d9a717f926b7cda1744fd">WEBRTC_AUDIO</a> = (1 &lt;&lt; 0), 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4a98eb7641bdbb1edc5fe77bdd3e3650ab">WEBRTC_VIDEO</a> = (1 &lt;&lt; 1), 
<br />
&#160;&#160;<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4add7aa55d55c61e54ef02a9d6561b38d3">WEBRTC_SEND</a> = (1 &lt;&lt; 2), 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4aa0b0d71eedf0e9cb89dad480acf2a808">WEBRTC_RECEIVE</a> = (1 &lt;&lt; 3), 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4a25abb9f2f31e749534b50835291d40f0">WEBRTC_MULTI_CLIENT</a> = (1 &lt;&lt; 4), 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4a66831e34a5556976064e4d62e5fcc753">WEBRTC_PEER_CONNECTING</a> = (1 &lt;&lt; 5), 
<br />
&#160;&#160;<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4ad0e08bdd9c1c0a10e019235f9e341278">WEBRTC_PEER_CONNECTED</a> = (1 &lt;&lt; 6), 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4a02bfc67384ac6c23bde10f88d829fb09">WEBRTC_PEER_STREAMING</a> = (1 &lt;&lt; 7), 
<a class="el" href="group__network.html#ggabfc2d28deff979bf1183220b57b78bd4a1a11199124c60fea07d424d28aaa072c">WEBRTC_PEER_CLOSED</a> = (1 &lt;&lt; 8)
<br />
 }</td></tr>
<tr class="memdesc:gabfc2d28deff979bf1183220b57b78bd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags for route decorators or peer state.  <a href="group__network.html#gabfc2d28deff979bf1183220b57b78bd4">More...</a><br /></td></tr>
<tr class="separator:gabfc2d28deff979bf1183220b57b78bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga5eafb2061e9a44862e8fd1a59bea2fe4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga5eafb2061e9a44862e8fd1a59bea2fe4">IPv4AddressFromStr</a> (const char *str, uint32_t *ipAddress)</td></tr>
<tr class="memdesc:ga5eafb2061e9a44862e8fd1a59bea2fe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an IPv4 address string in "xxx.xxx.xxx.xxx" format to binary representation.  <a href="group__network.html#ga5eafb2061e9a44862e8fd1a59bea2fe4">More...</a><br /></td></tr>
<tr class="separator:ga5eafb2061e9a44862e8fd1a59bea2fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d1b5dfaf28b99b9d86b565a242ceab8"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga8d1b5dfaf28b99b9d86b565a242ceab8">IPv4AddressToStr</a> (uint32_t ipAddress)</td></tr>
<tr class="memdesc:ga8d1b5dfaf28b99b9d86b565a242ceab8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return text string of IPv4 address in "xxx.xxx.xxx.xxx" format.  <a href="group__network.html#ga8d1b5dfaf28b99b9d86b565a242ceab8">More...</a><br /></td></tr>
<tr class="separator:ga8d1b5dfaf28b99b9d86b565a242ceab8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35c4991d07188de821f18cfe80cdd085"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga35c4991d07188de821f18cfe80cdd085">IPv6AddressFromStr</a> (const char *str, void *ipAddress)</td></tr>
<tr class="memdesc:ga35c4991d07188de821f18cfe80cdd085"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an IPv6 address string in "x:x:x:x:x:x:x:x" hexadecimal format to 128-bit binary representation.  <a href="group__network.html#ga35c4991d07188de821f18cfe80cdd085">More...</a><br /></td></tr>
<tr class="separator:ga35c4991d07188de821f18cfe80cdd085"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga600322ef1ffde24816714c7e5a0c5624"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga600322ef1ffde24816714c7e5a0c5624">IPv6AddressToStr</a> (void *ipAddress)</td></tr>
<tr class="memdesc:ga600322ef1ffde24816714c7e5a0c5624"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return text string of IPv6 address in "x:x:x:x:x:x:x:x" hexadecimal format.  <a href="group__network.html#ga600322ef1ffde24816714c7e5a0c5624">More...</a><br /></td></tr>
<tr class="separator:ga600322ef1ffde24816714c7e5a0c5624"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4eeeacba2fc1201c43d42a4f5145b825"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga4eeeacba2fc1201c43d42a4f5145b825">getHostname</a> ()</td></tr>
<tr class="memdesc:ga4eeeacba2fc1201c43d42a4f5145b825"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the host system's network hostname.  <a href="group__network.html#ga4eeeacba2fc1201c43d42a4f5145b825">More...</a><br /></td></tr>
<tr class="separator:ga4eeeacba2fc1201c43d42a4f5145b825"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga604bb0e239d02117b959fda9ffd28c9a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ga604bb0e239d02117b959fda9ffd28c9a">getHostByName</a> (const char *name, uint32_t retries=10)</td></tr>
<tr class="memdesc:ga604bb0e239d02117b959fda9ffd28c9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resolve the IP address of a given hostname or domain using DNS lookup, and return it as a string.  <a href="group__network.html#ga604bb0e239d02117b959fda9ffd28c9a">More...</a><br /></td></tr>
<tr class="separator:ga604bb0e239d02117b959fda9ffd28c9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8ffc5329146c2db42c61016dcc54c76"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gab8ffc5329146c2db42c61016dcc54c76">getHostByName</a> (const char *name, void *ipAddress, uint32_t size, uint32_t retries=10)</td></tr>
<tr class="memdesc:gab8ffc5329146c2db42c61016dcc54c76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resolve the IP address of a given hostname or domain using DNS lookup.  <a href="group__network.html#gab8ffc5329146c2db42c61016dcc54c76">More...</a><br /></td></tr>
<tr class="separator:gab8ffc5329146c2db42c61016dcc54c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab929e511b041783d8dd4650f17d80dbd"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="group__network.html#structNetworkInterface">NetworkInterface</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gab929e511b041783d8dd4650f17d80dbd">getNetworkInterfaces</a> ()</td></tr>
<tr class="memdesc:gab929e511b041783d8dd4650f17d80dbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve info about the different IPv4/IPv6 network interfaces of the system.  <a href="group__network.html#gab929e511b041783d8dd4650f17d80dbd">More...</a><br /></td></tr>
<tr class="separator:gab929e511b041783d8dd4650f17d80dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1ca82becf0918d589ec9938b51a977b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#gad1ca82becf0918d589ec9938b51a977b">printNetworkInterfaces</a> (const std::vector&lt; <a class="el" href="group__network.html#structNetworkInterface">NetworkInterface</a> &gt; &amp;interfaces)</td></tr>
<tr class="memdesc:gad1ca82becf0918d589ec9938b51a977b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out a list of network interfaces.  <a href="group__network.html#gad1ca82becf0918d589ec9938b51a977b">More...</a><br /></td></tr>
<tr class="separator:gad1ca82becf0918d589ec9938b51a977b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>TCP/UDP sockets and IP address manipulation. </p>
<hr/><h2 class="groupheader">Class Documentation</h2>
<a name="structNetworkInterface" id="structNetworkInterface"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structNetworkInterface">&#9670;&nbsp;</a></span>NetworkInterface</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct NetworkInterface</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Info about a particular network interface. </p>
<p>The <a class="el" href="structNetworkInterface_1_1IPv6.html">IPv6</a> information will be filled out if it's enabled on the interface. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Public Attributes</h3></td></tr>
<tr class="memitem:a36f3119ebeebc4f41a339dfd9ad329d4"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a36f3119ebeebc4f41a339dfd9ad329d4">name</a></td></tr>
<tr class="memdesc:a36f3119ebeebc4f41a339dfd9ad329d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">name of the network interface (e.g.  <a href="group__network.html#a36f3119ebeebc4f41a339dfd9ad329d4">More...</a><br /></td></tr>
<tr class="separator:a36f3119ebeebc4f41a339dfd9ad329d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe51eb63965aedb79524afd991ee077d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#abe51eb63965aedb79524afd991ee077d">up</a></td></tr>
<tr class="memdesc:abe51eb63965aedb79524afd991ee077d"><td class="mdescLeft">&#160;</td><td class="mdescRight">true if the interface is up, false if down  <a href="group__network.html#abe51eb63965aedb79524afd991ee077d">More...</a><br /></td></tr>
<tr class="separator:abe51eb63965aedb79524afd991ee077d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5ed1543c19ac9600faea3c2d3caf5c7"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structNetworkInterface_1_1IPv4.html">NetworkInterface::IPv4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ac5ed1543c19ac9600faea3c2d3caf5c7">ipv4</a></td></tr>
<tr class="separator:ac5ed1543c19ac9600faea3c2d3caf5c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0303c41a0e338773749eb8772dea3f15"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structNetworkInterface_1_1IPv6.html">NetworkInterface::IPv6</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a0303c41a0e338773749eb8772dea3f15">ipv6</a></td></tr>
<tr class="separator:a0303c41a0e338773749eb8772dea3f15"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="ac5ed1543c19ac9600faea3c2d3caf5c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5ed1543c19ac9600faea3c2d3caf5c7">&#9670;&nbsp;</a></span>ipv4</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structNetworkInterface_1_1IPv4.html">NetworkInterface::IPv4</a> NetworkInterface::ipv4</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a0303c41a0e338773749eb8772dea3f15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0303c41a0e338773749eb8772dea3f15">&#9670;&nbsp;</a></span>ipv6</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structNetworkInterface_1_1IPv6.html">NetworkInterface::IPv6</a> NetworkInterface::ipv6</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a36f3119ebeebc4f41a339dfd9ad329d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36f3119ebeebc4f41a339dfd9ad329d4">&#9670;&nbsp;</a></span>name</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string NetworkInterface::name</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>name of the network interface (e.g. </p>
<p>eth0, wlan0, lo) </p>

</div>
</div>
<a id="abe51eb63965aedb79524afd991ee077d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe51eb63965aedb79524afd991ee077d">&#9670;&nbsp;</a></span>up</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NetworkInterface::up</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>true if the interface is up, false if down </p>

</div>
</div>

</div>
</div>
<a name="classRTSPServer" id="classRTSPServer"></a>
<h2 class="memtitle"><span class="permalink"><a href="#classRTSPServer">&#9670;&nbsp;</a></span>RTSPServer</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class RTSPServer</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>RTSP server for transmitting encoded GStreamer pipelines to client devices. </p>
<p>This is integrated into videoOutput/gstEncoder, but can be used standalone (</p><dl class="section see"><dt>See also</dt><dd>rtsp-server example) </dd></dl>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:a0c8972a8e28a351689f554e393aa8cf6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a0c8972a8e28a351689f554e393aa8cf6">Release</a> ()</td></tr>
<tr class="memdesc:a0c8972a8e28a351689f554e393aa8cf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a reference to the server instance.  <a href="group__network.html#a0c8972a8e28a351689f554e393aa8cf6">More...</a><br /></td></tr>
<tr class="separator:a0c8972a8e28a351689f554e393aa8cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a830f81d7d7b8ba121675f79fce43eaac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a830f81d7d7b8ba121675f79fce43eaac">AddRoute</a> (const char *path, _GstElement *pipeline)</td></tr>
<tr class="memdesc:a830f81d7d7b8ba121675f79fce43eaac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a GStreamer pipeline to be served at the specified path.  <a href="group__network.html#a830f81d7d7b8ba121675f79fce43eaac">More...</a><br /></td></tr>
<tr class="separator:a830f81d7d7b8ba121675f79fce43eaac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad167dd8db30be68de8a9bd51a4bf4c27"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ad167dd8db30be68de8a9bd51a4bf4c27">AddRoute</a> (const char *path, const char *pipeline)</td></tr>
<tr class="memdesc:ad167dd8db30be68de8a9bd51a4bf4c27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a GStreamer pipeline and register it to be served at the specified path.  <a href="group__network.html#ad167dd8db30be68de8a9bd51a4bf4c27">More...</a><br /></td></tr>
<tr class="separator:ad167dd8db30be68de8a9bd51a4bf4c27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Public Member Functions</h3></td></tr>
<tr class="memitem:a587bb419055e937bee5a3ef1b6c00fad"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__network.html#classRTSPServer">RTSPServer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a587bb419055e937bee5a3ef1b6c00fad">Create</a> (uint16_t port=<a class="el" href="group__network.html#gad453571ec9bbc7fc4e595298a9380e53">RTSP_DEFAULT_PORT</a>)</td></tr>
<tr class="memdesc:a587bb419055e937bee5a3ef1b6c00fad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a RTSP server on this port.  <a href="group__network.html#a587bb419055e937bee5a3ef1b6c00fad">More...</a><br /></td></tr>
<tr class="separator:a587bb419055e937bee5a3ef1b6c00fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Member Functions</h3></td></tr>
<tr class="memitem:ab096687afe7d5e081185ba38cdf4e99b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ab096687afe7d5e081185ba38cdf4e99b">RTSPServer</a> (uint16_t port)</td></tr>
<tr class="separator:ab096687afe7d5e081185ba38cdf4e99b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a187ee9b223f5989501f9a603083c70f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a187ee9b223f5989501f9a603083c70f2">~RTSPServer</a> ()</td></tr>
<tr class="separator:a187ee9b223f5989501f9a603083c70f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad59fe5692a09586b17a455eebfc1c62f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ad59fe5692a09586b17a455eebfc1c62f">init</a> ()</td></tr>
<tr class="separator:ad59fe5692a09586b17a455eebfc1c62f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Protected Member Functions</h3></td></tr>
<tr class="memitem:acb825a1b249ed6befef28d2eb4f3f4e1"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#acb825a1b249ed6befef28d2eb4f3f4e1">runThread</a> (void *user_data)</td></tr>
<tr class="separator:acb825a1b249ed6befef28d2eb4f3f4e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Attributes</h3></td></tr>
<tr class="memitem:af8c65d149ac8dd1c529269054fcf854d"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#af8c65d149ac8dd1c529269054fcf854d">mPort</a></td></tr>
<tr class="separator:af8c65d149ac8dd1c529269054fcf854d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad08c41ce4c018aef7faa1fc1a8e309b3"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ad08c41ce4c018aef7faa1fc1a8e309b3">mRefCount</a></td></tr>
<tr class="separator:ad08c41ce4c018aef7faa1fc1a8e309b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae32c747d072148444724e6089d558c23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__threads.html#classThread">Thread</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ae32c747d072148444724e6089d558c23">mThread</a></td></tr>
<tr class="separator:ae32c747d072148444724e6089d558c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2673512fa380a665f725e44740ae911"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ae2673512fa380a665f725e44740ae911">mRunning</a></td></tr>
<tr class="separator:ae2673512fa380a665f725e44740ae911"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab061de4075266b011645739d083fac25"><td class="memItemLeft" align="right" valign="top">_GMainLoop *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ab061de4075266b011645739d083fac25">mMainLoop</a></td></tr>
<tr class="separator:ab061de4075266b011645739d083fac25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab07d23789188b9e0db6b0806e54d4e0c"><td class="memItemLeft" align="right" valign="top">_GstRTSPServer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ab07d23789188b9e0db6b0806e54d4e0c">mServer</a></td></tr>
<tr class="separator:ab07d23789188b9e0db6b0806e54d4e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a id="ab096687afe7d5e081185ba38cdf4e99b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab096687afe7d5e081185ba38cdf4e99b">&#9670;&nbsp;</a></span>RTSPServer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RTSPServer::RTSPServer </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a187ee9b223f5989501f9a603083c70f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a187ee9b223f5989501f9a603083c70f2">&#9670;&nbsp;</a></span>~RTSPServer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RTSPServer::~RTSPServer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a id="a830f81d7d7b8ba121675f79fce43eaac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a830f81d7d7b8ba121675f79fce43eaac">&#9670;&nbsp;</a></span>AddRoute() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTSPServer::AddRoute </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_GstElement *&#160;</td>
          <td class="paramname"><em>pipeline</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a GStreamer pipeline to be served at the specified path. </p>
<p>It will be able to be viewed from clients at <code>rtsp://hostname:port/path</code> </p>

</div>
</div>
<a id="ad167dd8db30be68de8a9bd51a4bf4c27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad167dd8db30be68de8a9bd51a4bf4c27">&#9670;&nbsp;</a></span>AddRoute() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTSPServer::AddRoute </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pipeline</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a GStreamer pipeline and register it to be served at the specified path. </p>
<p>It will be able to be viewed from clients at <code>rtsp://hostname:port/path</code> </p>

</div>
</div>
<a id="a587bb419055e937bee5a3ef1b6c00fad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a587bb419055e937bee5a3ef1b6c00fad">&#9670;&nbsp;</a></span>Create()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__network.html#classRTSPServer">RTSPServer</a>* RTSPServer::Create </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em> = <code><a class="el" href="group__network.html#gad453571ec9bbc7fc4e595298a9380e53">RTSP_DEFAULT_PORT</a></code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a RTSP server on this port. </p>
<p>If this port is already in use, the existing server instance will be returned. </p>

</div>
</div>
<a id="ad59fe5692a09586b17a455eebfc1c62f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad59fe5692a09586b17a455eebfc1c62f">&#9670;&nbsp;</a></span>init()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool RTSPServer::init </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0c8972a8e28a351689f554e393aa8cf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c8972a8e28a351689f554e393aa8cf6">&#9670;&nbsp;</a></span>Release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTSPServer::Release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Release a reference to the server instance. </p>
<p>Server will be shut down when the reference count reaches zero. </p>

</div>
</div>
<a id="acb825a1b249ed6befef28d2eb4f3f4e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb825a1b249ed6befef28d2eb4f3f4e1">&#9670;&nbsp;</a></span>runThread()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void* RTSPServer::runThread </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="ab061de4075266b011645739d083fac25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab061de4075266b011645739d083fac25">&#9670;&nbsp;</a></span>mMainLoop</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_GMainLoop* RTSPServer::mMainLoop</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af8c65d149ac8dd1c529269054fcf854d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8c65d149ac8dd1c529269054fcf854d">&#9670;&nbsp;</a></span>mPort</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t RTSPServer::mPort</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad08c41ce4c018aef7faa1fc1a8e309b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad08c41ce4c018aef7faa1fc1a8e309b3">&#9670;&nbsp;</a></span>mRefCount</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTSPServer::mRefCount</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ae2673512fa380a665f725e44740ae911"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2673512fa380a665f725e44740ae911">&#9670;&nbsp;</a></span>mRunning</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool RTSPServer::mRunning</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab07d23789188b9e0db6b0806e54d4e0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab07d23789188b9e0db6b0806e54d4e0c">&#9670;&nbsp;</a></span>mServer</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_GstRTSPServer* RTSPServer::mServer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ae32c747d072148444724e6089d558c23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae32c747d072148444724e6089d558c23">&#9670;&nbsp;</a></span>mThread</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__threads.html#classThread">Thread</a>* RTSPServer::mThread</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<a name="classSocket" id="classSocket"></a>
<h2 class="memtitle"><span class="permalink"><a href="#classSocket">&#9670;&nbsp;</a></span>Socket</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class Socket</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>The <a class="el" href="group__network.html#classSocket" title="The Socket class provides TCP or UDP ethernet networking.">Socket</a> class provides TCP or UDP ethernet networking. </p>
<p><br  />
 To exchange data with a remote IP on the network using UDP, follow these steps: </p><pre class="fragment">    1.  Create a Socket instance with the static Create() function.
</pre><ol type="1">
<li><a class="el" href="group__network.html#a3935a15fa982064c2cb35996a2d6ef3d" title="Bind the socket to a local host IP address and port.">Bind()</a> the <a class="el" href="group__network.html#classSocket" title="The Socket class provides TCP or UDP ethernet networking.">Socket</a> to a host IP address and port</li>
<li>Exchange data with the Send/Recv functions </li>
</ol>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:aeac4eb6379a543d38ed88977d3b6630a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#aeac4eb6379a543d38ed88977d3b6630a">~Socket</a> ()</td></tr>
<tr class="memdesc:aeac4eb6379a543d38ed88977d3b6630a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="group__network.html#aeac4eb6379a543d38ed88977d3b6630a">More...</a><br /></td></tr>
<tr class="separator:aeac4eb6379a543d38ed88977d3b6630a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3fb80aa2f7ab74d371fe045bc1312ee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ae3fb80aa2f7ab74d371fe045bc1312ee">Accept</a> (uint64_t timeout=0)</td></tr>
<tr class="memdesc:ae3fb80aa2f7ab74d371fe045bc1312ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept incoming connections (TCP only).  <a href="group__network.html#ae3fb80aa2f7ab74d371fe045bc1312ee">More...</a><br /></td></tr>
<tr class="separator:ae3fb80aa2f7ab74d371fe045bc1312ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3935a15fa982064c2cb35996a2d6ef3d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a3935a15fa982064c2cb35996a2d6ef3d">Bind</a> (const char *localIP, uint16_t port)</td></tr>
<tr class="memdesc:a3935a15fa982064c2cb35996a2d6ef3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bind the socket to a local host IP address and port.  <a href="group__network.html#a3935a15fa982064c2cb35996a2d6ef3d">More...</a><br /></td></tr>
<tr class="separator:a3935a15fa982064c2cb35996a2d6ef3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27b61fa80a52fe2a3cd8e53490f87371"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a27b61fa80a52fe2a3cd8e53490f87371">Bind</a> (uint32_t localIP, uint16_t port)</td></tr>
<tr class="memdesc:a27b61fa80a52fe2a3cd8e53490f87371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bind the socket to a local host IP address and port.  <a href="group__network.html#a27b61fa80a52fe2a3cd8e53490f87371">More...</a><br /></td></tr>
<tr class="separator:a27b61fa80a52fe2a3cd8e53490f87371"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb916cc93bb51552ec6181890189c10b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#adb916cc93bb51552ec6181890189c10b">Bind</a> (uint16_t port=0)</td></tr>
<tr class="memdesc:adb916cc93bb51552ec6181890189c10b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bind the socket to a local host port, on any interface (0.0.0.0 INADDR_ANY).  <a href="group__network.html#adb916cc93bb51552ec6181890189c10b">More...</a><br /></td></tr>
<tr class="separator:adb916cc93bb51552ec6181890189c10b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae52ee0bd9db277eee9324ed8da312bc7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ae52ee0bd9db277eee9324ed8da312bc7">Connect</a> (const char *remoteIP, uint16_t port)</td></tr>
<tr class="memdesc:ae52ee0bd9db277eee9324ed8da312bc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to a listening server (TCP only).  <a href="group__network.html#ae52ee0bd9db277eee9324ed8da312bc7">More...</a><br /></td></tr>
<tr class="separator:ae52ee0bd9db277eee9324ed8da312bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa166710a82dfd4c8a594b2f8fb36dc7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#aaa166710a82dfd4c8a594b2f8fb36dc7">Connect</a> (uint32_t remoteIP, uint16_t port)</td></tr>
<tr class="memdesc:aaa166710a82dfd4c8a594b2f8fb36dc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to a listening server (TCP only).  <a href="group__network.html#aaa166710a82dfd4c8a594b2f8fb36dc7">More...</a><br /></td></tr>
<tr class="separator:aaa166710a82dfd4c8a594b2f8fb36dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30b5c0d94e1477859a1b05ce9cd2bedf"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a30b5c0d94e1477859a1b05ce9cd2bedf">Recieve</a> (uint8_t *buffer, size_t size, uint32_t *remoteIP=NULL, uint16_t *remotePort=NULL)</td></tr>
<tr class="memdesc:a30b5c0d94e1477859a1b05ce9cd2bedf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for a packet to be recieved and dump it into the user-supplied buffer.  <a href="group__network.html#a30b5c0d94e1477859a1b05ce9cd2bedf">More...</a><br /></td></tr>
<tr class="separator:a30b5c0d94e1477859a1b05ce9cd2bedf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf5d5e11719d38cc656cd36e8c8dd9be"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#abf5d5e11719d38cc656cd36e8c8dd9be">Recieve</a> (uint8_t *buffer, size_t size, uint32_t *remoteIP, uint16_t *remotePort, uint32_t *localIP)</td></tr>
<tr class="memdesc:abf5d5e11719d38cc656cd36e8c8dd9be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recieve packet, with additional address info.  <a href="group__network.html#abf5d5e11719d38cc656cd36e8c8dd9be">More...</a><br /></td></tr>
<tr class="separator:abf5d5e11719d38cc656cd36e8c8dd9be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a899ae7dea24300c0c11ffc908f428f76"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a899ae7dea24300c0c11ffc908f428f76">Send</a> (void *buffer, size_t size, uint32_t remoteIP, uint16_t remotePort)</td></tr>
<tr class="memdesc:a899ae7dea24300c0c11ffc908f428f76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send message to remote host.  <a href="group__network.html#a899ae7dea24300c0c11ffc908f428f76">More...</a><br /></td></tr>
<tr class="separator:a899ae7dea24300c0c11ffc908f428f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74faf2bdb3116dc69164549465bfb638"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a74faf2bdb3116dc69164549465bfb638">SetRecieveTimeout</a> (uint64_t timeout)</td></tr>
<tr class="memdesc:a74faf2bdb3116dc69164549465bfb638"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Receive() timeout (in microseconds).  <a href="group__network.html#a74faf2bdb3116dc69164549465bfb638">More...</a><br /></td></tr>
<tr class="separator:a74faf2bdb3116dc69164549465bfb638"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a453d33c92c88a15b0d93601ef9f067aa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a453d33c92c88a15b0d93601ef9f067aa">SetBufferSize</a> (size_t size)</td></tr>
<tr class="memdesc:a453d33c92c88a15b0d93601ef9f067aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the rx/tx buffer sizes.  <a href="group__network.html#a453d33c92c88a15b0d93601ef9f067aa">More...</a><br /></td></tr>
<tr class="separator:a453d33c92c88a15b0d93601ef9f067aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90ff068da1fa6e1a28a014adca9efd74"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a90ff068da1fa6e1a28a014adca9efd74">EnableJumboBuffer</a> ()</td></tr>
<tr class="memdesc:a90ff068da1fa6e1a28a014adca9efd74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable jumbo buffer.  <a href="group__network.html#a90ff068da1fa6e1a28a014adca9efd74">More...</a><br /></td></tr>
<tr class="separator:a90ff068da1fa6e1a28a014adca9efd74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8e832813b2d414478b83e898cd88e30"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#af8e832813b2d414478b83e898cd88e30">GetFD</a> () const</td></tr>
<tr class="memdesc:af8e832813b2d414478b83e898cd88e30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the socket's file descriptor.  <a href="group__network.html#af8e832813b2d414478b83e898cd88e30">More...</a><br /></td></tr>
<tr class="separator:af8e832813b2d414478b83e898cd88e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c5d363579140822d7477b21df0ca1e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__network.html#gaa78c7398fa81f7f62aa233159d4d8d97">SocketType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a7c5d363579140822d7477b21df0ca1e7">GetType</a> () const</td></tr>
<tr class="memdesc:a7c5d363579140822d7477b21df0ca1e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">GetType.  <a href="group__network.html#a7c5d363579140822d7477b21df0ca1e7">More...</a><br /></td></tr>
<tr class="separator:a7c5d363579140822d7477b21df0ca1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a1a0827f962d665cbcd8fe363c2f411"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a2a1a0827f962d665cbcd8fe363c2f411">PrintIP</a> () const</td></tr>
<tr class="memdesc:a2a1a0827f962d665cbcd8fe363c2f411"><td class="mdescLeft">&#160;</td><td class="mdescRight">PrintIP.  <a href="group__network.html#a2a1a0827f962d665cbcd8fe363c2f411">More...</a><br /></td></tr>
<tr class="separator:a2a1a0827f962d665cbcd8fe363c2f411"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e9d1c14216315b46e2ab531735eec45"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a4e9d1c14216315b46e2ab531735eec45">GetMTU</a> ()</td></tr>
<tr class="memdesc:a4e9d1c14216315b46e2ab531735eec45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the MTU (in bytes).  <a href="group__network.html#a4e9d1c14216315b46e2ab531735eec45">More...</a><br /></td></tr>
<tr class="separator:a4e9d1c14216315b46e2ab531735eec45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Public Member Functions</h3></td></tr>
<tr class="memitem:a400f9fdf31e5d6738fcb33f7dd6464a3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__network.html#classSocket">Socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a400f9fdf31e5d6738fcb33f7dd6464a3">Create</a> (<a class="el" href="group__network.html#gaa78c7398fa81f7f62aa233159d4d8d97">SocketType</a> type)</td></tr>
<tr class="memdesc:a400f9fdf31e5d6738fcb33f7dd6464a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create.  <a href="group__network.html#a400f9fdf31e5d6738fcb33f7dd6464a3">More...</a><br /></td></tr>
<tr class="separator:a400f9fdf31e5d6738fcb33f7dd6464a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a id="aeac4eb6379a543d38ed88977d3b6630a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeac4eb6379a543d38ed88977d3b6630a">&#9670;&nbsp;</a></span>~Socket()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Socket::~Socket </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a id="ae3fb80aa2f7ab74d371fe045bc1312ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3fb80aa2f7ab74d371fe045bc1312ee">&#9670;&nbsp;</a></span>Accept()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::Accept </td>
          <td>(</td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Accept incoming connections (TCP only). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>The timeout (in microseconds) to wait for incoming connections before returning. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3935a15fa982064c2cb35996a2d6ef3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3935a15fa982064c2cb35996a2d6ef3d">&#9670;&nbsp;</a></span>Bind() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::Bind </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>localIP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bind the socket to a local host IP address and port. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ipAddress</td><td>IPv4 address in string format "xxx.xxx.xxx.xxx" </td></tr>
    <tr><td class="paramname">port</td><td>the port number (0-65536), in host byte order. If the port specified is 0, the socket will be bound to any available port. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="adb916cc93bb51552ec6181890189c10b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb916cc93bb51552ec6181890189c10b">&#9670;&nbsp;</a></span>Bind() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::Bind </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bind the socket to a local host port, on any interface (0.0.0.0 INADDR_ANY). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">port</td><td>the port number (0-65536), in host byte order. If the port specified is 0, the socket will be bound to any available port. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a27b61fa80a52fe2a3cd8e53490f87371"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27b61fa80a52fe2a3cd8e53490f87371">&#9670;&nbsp;</a></span>Bind() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::Bind </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>localIP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bind the socket to a local host IP address and port. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hostIP</td><td>IPv4 address, in network byte order. If htonl(INADDR_ANY) is specified for the ipAddress, the socket will be bound to all available interfaces. </td></tr>
    <tr><td class="paramname">port</td><td>the port number (0-65536), in host byte order. If the port specified is 0, the socket will be bound to any available port. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae52ee0bd9db277eee9324ed8da312bc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae52ee0bd9db277eee9324ed8da312bc7">&#9670;&nbsp;</a></span>Connect() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::Connect </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>remoteIP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connect to a listening server (TCP only). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">remoteIP</td><td>IP address of the remote host. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aaa166710a82dfd4c8a594b2f8fb36dc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa166710a82dfd4c8a594b2f8fb36dc7">&#9670;&nbsp;</a></span>Connect() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::Connect </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>remoteIP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connect to a listening server (TCP only). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">remoteIP</td><td>IP address of the remote host. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a400f9fdf31e5d6738fcb33f7dd6464a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a400f9fdf31e5d6738fcb33f7dd6464a3">&#9670;&nbsp;</a></span>Create()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__network.html#classSocket">Socket</a>* Socket::Create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__network.html#gaa78c7398fa81f7f62aa233159d4d8d97">SocketType</a>&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create. </p>

</div>
</div>
<a id="a90ff068da1fa6e1a28a014adca9efd74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90ff068da1fa6e1a28a014adca9efd74">&#9670;&nbsp;</a></span>EnableJumboBuffer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::EnableJumboBuffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable jumbo buffer. </p>

</div>
</div>
<a id="af8e832813b2d414478b83e898cd88e30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8e832813b2d414478b83e898cd88e30">&#9670;&nbsp;</a></span>GetFD()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int Socket::GetFD </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Retrieve the socket's file descriptor. </p>

</div>
</div>
<a id="a4e9d1c14216315b46e2ab531735eec45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e9d1c14216315b46e2ab531735eec45">&#9670;&nbsp;</a></span>GetMTU()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t Socket::GetMTU </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the MTU (in bytes). </p>
<p>Returns 0 on error. </p>

</div>
</div>
<a id="a7c5d363579140822d7477b21df0ca1e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c5d363579140822d7477b21df0ca1e7">&#9670;&nbsp;</a></span>GetType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__network.html#gaa78c7398fa81f7f62aa233159d4d8d97">SocketType</a> Socket::GetType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>GetType. </p>

</div>
</div>
<a id="a2a1a0827f962d665cbcd8fe363c2f411"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a1a0827f962d665cbcd8fe363c2f411">&#9670;&nbsp;</a></span>PrintIP()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Socket::PrintIP </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PrintIP. </p>

</div>
</div>
<a id="abf5d5e11719d38cc656cd36e8c8dd9be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf5d5e11719d38cc656cd36e8c8dd9be">&#9670;&nbsp;</a></span>Recieve() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t Socket::Recieve </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>remoteIP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>remotePort</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>localIP</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recieve packet, with additional address info. </p>
<p>In addition to returning the IP and port of the remote host which sent the packet, this function can also return the local IP and port which the packet was sent to. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__network.html#a30b5c0d94e1477859a1b05ce9cd2bedf" title="Wait for a packet to be recieved and dump it into the user-supplied buffer.">Recieve()</a> </dd></dl>

</div>
</div>
<a id="a30b5c0d94e1477859a1b05ce9cd2bedf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30b5c0d94e1477859a1b05ce9cd2bedf">&#9670;&nbsp;</a></span>Recieve() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t Socket::Recieve </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>remoteIP</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>remotePort</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wait for a packet to be recieved and dump it into the user-supplied buffer. </p>
<p>Optionally return the IP address and port of the remote host which sent the packet. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buffer</td><td>user-allocated destination for the packet </td></tr>
    <tr><td class="paramname">size</td><td>size of the buffer (in bytes) </td></tr>
    <tr><td class="paramname">remoteIpAddress</td><td>optional output, the IPv4 address of where the packet originated (in network byte order). </td></tr>
    <tr><td class="paramname">remotePort</td><td>optional output, the port from where the packet originated (in host byte order). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the size (in bytes) of the packet sucessfully written to buffer. </dd></dl>

</div>
</div>
<a id="a899ae7dea24300c0c11ffc908f428f76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a899ae7dea24300c0c11ffc908f428f76">&#9670;&nbsp;</a></span>Send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::Send </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>remoteIP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>remotePort</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send message to remote host. </p>

</div>
</div>
<a id="a453d33c92c88a15b0d93601ef9f067aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a453d33c92c88a15b0d93601ef9f067aa">&#9670;&nbsp;</a></span>SetBufferSize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::SetBufferSize </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the rx/tx buffer sizes. </p>

</div>
</div>
<a id="a74faf2bdb3116dc69164549465bfb638"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74faf2bdb3116dc69164549465bfb638">&#9670;&nbsp;</a></span>SetRecieveTimeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Socket::SetRecieveTimeout </td>
          <td>(</td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set Receive() timeout (in microseconds). </p>

</div>
</div>

</div>
</div>
<a name="structWebRTCPeer" id="structWebRTCPeer"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structWebRTCPeer">&#9670;&nbsp;</a></span>WebRTCPeer</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct WebRTCPeer</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Remote peer that has connected. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Public Attributes</h3></td></tr>
<tr class="memitem:af3a86d05b7dcb3795cb9a90b87a5fc14"><td class="memItemLeft" align="right" valign="top">SoupWebsocketConnection *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#af3a86d05b7dcb3795cb9a90b87a5fc14">connection</a></td></tr>
<tr class="separator:af3a86d05b7dcb3795cb9a90b87a5fc14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a803ff5def7a8be36e0fc0f84513845f8"><td class="memItemLeft" align="right" valign="top">SoupClientContext *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a803ff5def7a8be36e0fc0f84513845f8">client_context</a></td></tr>
<tr class="separator:a803ff5def7a8be36e0fc0f84513845f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3cfd24818f03363a8126037c77a26d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__network.html#classWebRTCServer">WebRTCServer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a8a3cfd24818f03363a8126037c77a26d">server</a></td></tr>
<tr class="separator:a8a3cfd24818f03363a8126037c77a26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e751082f73a3cd53dd5e6060526d1e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a77e751082f73a3cd53dd5e6060526d1e">ID</a></td></tr>
<tr class="separator:a77e751082f73a3cd53dd5e6060526d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b3508b0c436b367cc4a95080df26d9f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a6b3508b0c436b367cc4a95080df26d9f">flags</a></td></tr>
<tr class="separator:a6b3508b0c436b367cc4a95080df26d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3738d6e644d182fd8cd46bb600cebf5"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ac3738d6e644d182fd8cd46bb600cebf5">path</a></td></tr>
<tr class="separator:ac3738d6e644d182fd8cd46bb600cebf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9ecc5b68fb8b8a00e26e4fff273ad9a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ad9ecc5b68fb8b8a00e26e4fff273ad9a">ip_address</a></td></tr>
<tr class="separator:ad9ecc5b68fb8b8a00e26e4fff273ad9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a7aa8d3dbc1a006db68d1508a54d0d6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a2a7aa8d3dbc1a006db68d1508a54d0d6">user_data</a></td></tr>
<tr class="separator:a2a7aa8d3dbc1a006db68d1508a54d0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="a803ff5def7a8be36e0fc0f84513845f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a803ff5def7a8be36e0fc0f84513845f8">&#9670;&nbsp;</a></span>client_context</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SoupClientContext* WebRTCPeer::client_context</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="af3a86d05b7dcb3795cb9a90b87a5fc14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3a86d05b7dcb3795cb9a90b87a5fc14">&#9670;&nbsp;</a></span>connection</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SoupWebsocketConnection* WebRTCPeer::connection</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a6b3508b0c436b367cc4a95080df26d9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b3508b0c436b367cc4a95080df26d9f">&#9670;&nbsp;</a></span>flags</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t WebRTCPeer::flags</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a77e751082f73a3cd53dd5e6060526d1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77e751082f73a3cd53dd5e6060526d1e">&#9670;&nbsp;</a></span>ID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t WebRTCPeer::ID</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ad9ecc5b68fb8b8a00e26e4fff273ad9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9ecc5b68fb8b8a00e26e4fff273ad9a">&#9670;&nbsp;</a></span>ip_address</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string WebRTCPeer::ip_address</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac3738d6e644d182fd8cd46bb600cebf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3738d6e644d182fd8cd46bb600cebf5">&#9670;&nbsp;</a></span>path</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string WebRTCPeer::path</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8a3cfd24818f03363a8126037c77a26d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a3cfd24818f03363a8126037c77a26d">&#9670;&nbsp;</a></span>server</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__network.html#classWebRTCServer">WebRTCServer</a>* WebRTCPeer::server</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a2a7aa8d3dbc1a006db68d1508a54d0d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a7aa8d3dbc1a006db68d1508a54d0d6">&#9670;&nbsp;</a></span>user_data</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* WebRTCPeer::user_data</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<a name="classWebRTCServer" id="classWebRTCServer"></a>
<h2 class="memtitle"><span class="permalink"><a href="#classWebRTCServer">&#9670;&nbsp;</a></span>WebRTCServer</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class WebRTCServer</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>WebRTC signalling server for establishing and negotiating connections with peers for bi-directional media streaming. </p>
<p>Users can bind routing functions that configure their pipelines dynamically to handle incoming/outgoing streams.</p>
<p>It uses websockets to handle the communication with clients for SDP offers, ICE messages, ect. </p><dl class="section see"><dt>See also</dt><dd><a href="https://doc-kurento.readthedocs.io/en/stable/_static/client-javadoc/org/kurento/client/WebRtcEndpoint.html">https://doc-kurento.readthedocs.io/en/stable/_static/client-javadoc/org/kurento/client/WebRtcEndpoint.html</a></dd></dl>
<p>By default it also serves simple HTML for viewing video streams in browsers, but for full hosting you'll want to run this alongside an actual webserver.</p>
<p>multi-stream :: multi-client :: full-duplex </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Public Types</h3></td></tr>
<tr class="memitem:a87c958251b5146e420439d6cd0ed2867"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a87c958251b5146e420439d6cd0ed2867">WebsocketListener</a>) (<a class="el" href="group__network.html#structWebRTCPeer">WebRTCPeer</a> *peer, const char *message, size_t message_size, void *user_data)</td></tr>
<tr class="memdesc:a87c958251b5146e420439d6cd0ed2867"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function pointer to a callback for handling websocket requests.  <a href="group__network.html#a87c958251b5146e420439d6cd0ed2867">More...</a><br /></td></tr>
<tr class="separator:a87c958251b5146e420439d6cd0ed2867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a9229009aca73f62c363f879255bb38"><td class="memItemLeft" align="right" valign="top">typedef SoupServerCallback&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a0a9229009aca73f62c363f879255bb38">HttpListener</a></td></tr>
<tr class="memdesc:a0a9229009aca73f62c363f879255bb38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function pointer to a callback for handling HTTP requests.  <a href="group__network.html#a0a9229009aca73f62c363f879255bb38">More...</a><br /></td></tr>
<tr class="separator:a0a9229009aca73f62c363f879255bb38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:aeb70147a334c7f4aa526523707d316b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#aeb70147a334c7f4aa526523707d316b9">Release</a> ()</td></tr>
<tr class="memdesc:aeb70147a334c7f4aa526523707d316b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a reference to the server instance.  <a href="group__network.html#aeb70147a334c7f4aa526523707d316b9">More...</a><br /></td></tr>
<tr class="separator:aeb70147a334c7f4aa526523707d316b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d584e6f650648aad396f1873984c621"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a5d584e6f650648aad396f1873984c621">AddRoute</a> (const char *path, <a class="el" href="group__network.html#a0a9229009aca73f62c363f879255bb38">HttpListener</a> callback, void *user_data=NULL, uint32_t flags=0)</td></tr>
<tr class="memdesc:a5d584e6f650648aad396f1873984c621"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to handle incoming http/www requests at the specified path.  <a href="group__network.html#a5d584e6f650648aad396f1873984c621">More...</a><br /></td></tr>
<tr class="separator:a5d584e6f650648aad396f1873984c621"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab690301a156ea291d47c93a37d84ecb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ab690301a156ea291d47c93a37d84ecb9">AddRoute</a> (const char *path, <a class="el" href="group__network.html#a87c958251b5146e420439d6cd0ed2867">WebsocketListener</a> callback, void *user_data=NULL, uint32_t flags=0)</td></tr>
<tr class="memdesc:ab690301a156ea291d47c93a37d84ecb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to handle incoming Websocket requests at the specified path.  <a href="group__network.html#ab690301a156ea291d47c93a37d84ecb9">More...</a><br /></td></tr>
<tr class="separator:ab690301a156ea291d47c93a37d84ecb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3927daf271af5dead4f21a9a2ff1ac3"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ad3927daf271af5dead4f21a9a2ff1ac3">GetSTUNServer</a> () const</td></tr>
<tr class="memdesc:ad3927daf271af5dead4f21a9a2ff1ac3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the STUN server being used.  <a href="group__network.html#ad3927daf271af5dead4f21a9a2ff1ac3">More...</a><br /></td></tr>
<tr class="separator:ad3927daf271af5dead4f21a9a2ff1ac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbcd3355338382847a31e5e49f5caf97"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#adbcd3355338382847a31e5e49f5caf97">HasHTTPS</a> () const</td></tr>
<tr class="memdesc:adbcd3355338382847a31e5e49f5caf97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the server is using HTTPS.  <a href="group__network.html#adbcd3355338382847a31e5e49f5caf97">More...</a><br /></td></tr>
<tr class="separator:adbcd3355338382847a31e5e49f5caf97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32e99e59a4d0c536e7edcfbbd2dcdaee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a32e99e59a4d0c536e7edcfbbd2dcdaee">IsThreaded</a> () const</td></tr>
<tr class="memdesc:a32e99e59a4d0c536e7edcfbbd2dcdaee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the server is running in it's own thread.  <a href="group__network.html#a32e99e59a4d0c536e7edcfbbd2dcdaee">More...</a><br /></td></tr>
<tr class="separator:a32e99e59a4d0c536e7edcfbbd2dcdaee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac49ab53764ab184efe91a8c7040be7dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ac49ab53764ab184efe91a8c7040be7dc">ProcessRequests</a> (bool blocking=false)</td></tr>
<tr class="memdesc:ac49ab53764ab184efe91a8c7040be7dc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__threads.html#classProcess" title="Static functions for retrieving information about the running process.">Process</a> incoming requests on the server.  <a href="group__network.html#ac49ab53764ab184efe91a8c7040be7dc">More...</a><br /></td></tr>
<tr class="separator:ac49ab53764ab184efe91a8c7040be7dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Public Member Functions</h3></td></tr>
<tr class="memitem:a49631104e63bd4368ecb0217c402b4e7"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__network.html#classWebRTCServer">WebRTCServer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a49631104e63bd4368ecb0217c402b4e7">Create</a> (uint16_t port=<a class="el" href="group__network.html#ga0168a2334e9e1e13b83a665c8cce0742">WEBRTC_DEFAULT_PORT</a>, const char *stun_server=<a class="el" href="group__network.html#ga99b10c89b7c09a0c753f241f9e74c894">WEBRTC_DEFAULT_STUN_SERVER</a>, const char *ssl_cert=NULL, const char *ssl_key=NULL, bool threaded=true)</td></tr>
<tr class="memdesc:a49631104e63bd4368ecb0217c402b4e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a WebRTC server on this port.  <a href="group__network.html#a49631104e63bd4368ecb0217c402b4e7">More...</a><br /></td></tr>
<tr class="separator:a49631104e63bd4368ecb0217c402b4e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Member Functions</h3></td></tr>
<tr class="memitem:a91c2b446fe98224e7bd66693ccd19e21"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a91c2b446fe98224e7bd66693ccd19e21">WebRTCServer</a> (uint16_t port, const char *stun_server, const char *ssl_cert_file, const char *ssl_key_file, bool threaded)</td></tr>
<tr class="separator:a91c2b446fe98224e7bd66693ccd19e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59493ccab3274ddd2930e903ba770f1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a59493ccab3274ddd2930e903ba770f1d">~WebRTCServer</a> ()</td></tr>
<tr class="separator:a59493ccab3274ddd2930e903ba770f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed89521ec525e2a3c24757d2444f388d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#aed89521ec525e2a3c24757d2444f388d">init</a> ()</td></tr>
<tr class="separator:aed89521ec525e2a3c24757d2444f388d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d039ca61131cbe7accdce277a5629a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structWebRTCServer_1_1HttpRoute.html">HttpRoute</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a0d039ca61131cbe7accdce277a5629a9">findHttpRoute</a> (const char *path) const</td></tr>
<tr class="separator:a0d039ca61131cbe7accdce277a5629a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74f5de3572ef64def2be980efafd45e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a74f5de3572ef64def2be980efafd45e8">findWebsocketRoute</a> (const char *path) const</td></tr>
<tr class="separator:a74f5de3572ef64def2be980efafd45e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2221f9f1ba155c17f6d1f4e99057f7ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a2221f9f1ba155c17f6d1f4e99057f7ba">freeRoute</a> (<a class="el" href="structWebRTCServer_1_1HttpRoute.html">HttpRoute</a> *route)</td></tr>
<tr class="separator:a2221f9f1ba155c17f6d1f4e99057f7ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9b56063cac461e703148315bbf854e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a5e9b56063cac461e703148315bbf854e">freeRoute</a> (<a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a> *route)</td></tr>
<tr class="separator:a5e9b56063cac461e703148315bbf854e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7e9dc3e13c0d61c2b85819ef88fc5b7"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ac7e9dc3e13c0d61c2b85819ef88fc5b7">printRouteInfo</a> (<a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a> *route) const</td></tr>
<tr class="separator:ac7e9dc3e13c0d61c2b85819ef88fc5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Protected Member Functions</h3></td></tr>
<tr class="memitem:af67a297932aefb380d6f691c23e2a4e0"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#af67a297932aefb380d6f691c23e2a4e0">runThread</a> (void *user_data)</td></tr>
<tr class="separator:af67a297932aefb380d6f691c23e2a4e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad44d43978599476a12539802ff434d21"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ad44d43978599476a12539802ff434d21">onHttpRequest</a> (SoupServer *soup_server, SoupMessage *message, const char *path, GHashTable *query, SoupClientContext *client_context, void *user_data)</td></tr>
<tr class="separator:ad44d43978599476a12539802ff434d21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a495cc40be78a8cda04c03e30242ccbfa"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a495cc40be78a8cda04c03e30242ccbfa">onHttpDefault</a> (SoupServer *soup_server, SoupMessage *message, const char *path, GHashTable *query, SoupClientContext *client_context, void *user_data)</td></tr>
<tr class="separator:a495cc40be78a8cda04c03e30242ccbfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d50ecf2c197872b45d86adc5aeba0da"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a7d50ecf2c197872b45d86adc5aeba0da">onWebsocketOpened</a> (SoupServer *server, SoupWebsocketConnection *connection, const char *path, SoupClientContext *client_context, void *user_data)</td></tr>
<tr class="separator:a7d50ecf2c197872b45d86adc5aeba0da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b94ce7618d8d4c7a8d4e66f674f958e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a0b94ce7618d8d4c7a8d4e66f674f958e">onWebsocketMessage</a> (SoupWebsocketConnection *connection, SoupWebsocketDataType data_type, GBytes *message, void *user_data)</td></tr>
<tr class="separator:a0b94ce7618d8d4c7a8d4e66f674f958e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4b1d80e74f1bcdcd5e5366ca36e50a2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#aa4b1d80e74f1bcdcd5e5366ca36e50a2">onWebsocketClosed</a> (SoupWebsocketConnection *connection, void *user_data)</td></tr>
<tr class="separator:aa4b1d80e74f1bcdcd5e5366ca36e50a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Attributes</h3></td></tr>
<tr class="memitem:a3afcb67c4dfc05a2cf80bac068b97146"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structWebRTCServer_1_1HttpRoute.html">HttpRoute</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a3afcb67c4dfc05a2cf80bac068b97146">mHttpRoutes</a></td></tr>
<tr class="separator:a3afcb67c4dfc05a2cf80bac068b97146"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67b529a7a9e37f892fb93b7409a2035f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a67b529a7a9e37f892fb93b7409a2035f">mWebsocketRoutes</a></td></tr>
<tr class="separator:a67b529a7a9e37f892fb93b7409a2035f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a357507a6bd6da2cb41e90148f226b740"><td class="memItemLeft" align="right" valign="top">SoupServer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a357507a6bd6da2cb41e90148f226b740">mSoupServer</a></td></tr>
<tr class="separator:a357507a6bd6da2cb41e90148f226b740"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ec44a6d8bdcd422b38082689511c66"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ae4ec44a6d8bdcd422b38082689511c66">mStunServer</a></td></tr>
<tr class="separator:ae4ec44a6d8bdcd422b38082689511c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac00aed03b4a8aa98ae5b3f5088a80f9a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#ac00aed03b4a8aa98ae5b3f5088a80f9a">mSSLCertFile</a></td></tr>
<tr class="separator:ac00aed03b4a8aa98ae5b3f5088a80f9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a333a035d9db6dea40816f8685fda5b24"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a333a035d9db6dea40816f8685fda5b24">mSSLKeyFile</a></td></tr>
<tr class="separator:a333a035d9db6dea40816f8685fda5b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf3e2efff7428476b75b74f5199bc06b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#acf3e2efff7428476b75b74f5199bc06b">mHasHTTPS</a></td></tr>
<tr class="separator:acf3e2efff7428476b75b74f5199bc06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c5e2f97d7cbd9cf4083aeff416dc5cc"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a4c5e2f97d7cbd9cf4083aeff416dc5cc">mPort</a></td></tr>
<tr class="separator:a4c5e2f97d7cbd9cf4083aeff416dc5cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eb643c9200b6229942cc5e7bf8c8f56"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a1eb643c9200b6229942cc5e7bf8c8f56">mRefCount</a></td></tr>
<tr class="separator:a1eb643c9200b6229942cc5e7bf8c8f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a437e4568ee60de9a5e94dfe62763e2fc"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a437e4568ee60de9a5e94dfe62763e2fc">mPeerCount</a></td></tr>
<tr class="separator:a437e4568ee60de9a5e94dfe62763e2fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229d7bef55546e26fe49056465616831"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__threads.html#classThread">Thread</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__network.html#a229d7bef55546e26fe49056465616831">mThread</a></td></tr>
<tr class="separator:a229d7bef55546e26fe49056465616831"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Member Typedef Documentation</h4>
<a id="a0a9229009aca73f62c363f879255bb38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a9229009aca73f62c363f879255bb38">&#9670;&nbsp;</a></span>HttpListener</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef SoupServerCallback <a class="el" href="group__network.html#a0a9229009aca73f62c363f879255bb38">WebRTCServer::HttpListener</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function pointer to a callback for handling HTTP requests. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://developer-old.gnome.org/libsoup/stable/SoupServer.html#SoupServerCallback">https://developer-old.gnome.org/libsoup/stable/SoupServer.html#SoupServerCallback</a> </dd></dl>

</div>
</div>
<a id="a87c958251b5146e420439d6cd0ed2867"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87c958251b5146e420439d6cd0ed2867">&#9670;&nbsp;</a></span>WebsocketListener</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* WebRTCServer::WebsocketListener) (<a class="el" href="group__network.html#structWebRTCPeer">WebRTCPeer</a> *peer, const char *message, size_t message_size, void *user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function pointer to a callback for handling websocket requests. </p>
<dl class="section see"><dt>See also</dt><dd>AddConnectionListener </dd></dl>

</div>
</div>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a id="a91c2b446fe98224e7bd66693ccd19e21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91c2b446fe98224e7bd66693ccd19e21">&#9670;&nbsp;</a></span>WebRTCServer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">WebRTCServer::WebRTCServer </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>stun_server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ssl_cert_file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ssl_key_file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>threaded</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a59493ccab3274ddd2930e903ba770f1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59493ccab3274ddd2930e903ba770f1d">&#9670;&nbsp;</a></span>~WebRTCServer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">WebRTCServer::~WebRTCServer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a id="a5d584e6f650648aad396f1873984c621"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d584e6f650648aad396f1873984c621">&#9670;&nbsp;</a></span>AddRoute() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WebRTCServer::AddRoute </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__network.html#a0a9229009aca73f62c363f879255bb38">HttpListener</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a function to handle incoming http/www requests at the specified path. </p>
<p>These are for serving webpages, and should be on different paths than the websockets. If the path is "/" the callback will handle all routes. If the route for this path already exists, it will replace the existing route. To remove a route, set the callback to NULL. </p>

</div>
</div>
<a id="ab690301a156ea291d47c93a37d84ecb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab690301a156ea291d47c93a37d84ecb9">&#9670;&nbsp;</a></span>AddRoute() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WebRTCServer::AddRoute </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__network.html#a87c958251b5146e420439d6cd0ed2867">WebsocketListener</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a function to handle incoming Websocket requests at the specified path. </p>
<p>This path often represents a media stream that can be sent/recieved, or a function for dynamically configuring streams when new clients connect.</p>
<p>If the path is "/" the callback will handle all routes. If the route for this path already exists, it will replace the existing route. To remove a route, set the callback to NULL.</p>
<p>The optional flags are WebRTCFlags OR'd together and are used for describing the stream capabilities for purposes of discovery.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__network.html#gabfc2d28deff979bf1183220b57b78bd4" title="Flags for route decorators or peer state.">WebRTCFlags</a> </dd></dl>

</div>
</div>
<a id="a49631104e63bd4368ecb0217c402b4e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49631104e63bd4368ecb0217c402b4e7">&#9670;&nbsp;</a></span>Create()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__network.html#classWebRTCServer">WebRTCServer</a>* WebRTCServer::Create </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em> = <code><a class="el" href="group__network.html#ga0168a2334e9e1e13b83a665c8cce0742">WEBRTC_DEFAULT_PORT</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>stun_server</em> = <code><a class="el" href="group__network.html#ga99b10c89b7c09a0c753f241f9e74c894">WEBRTC_DEFAULT_STUN_SERVER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ssl_cert</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ssl_key</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>threaded</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a WebRTC server on this port. </p>
<p>If this port is already in use, the existing server instance will be returned. </p>

</div>
</div>
<a id="a0d039ca61131cbe7accdce277a5629a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d039ca61131cbe7accdce277a5629a9">&#9670;&nbsp;</a></span>findHttpRoute()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structWebRTCServer_1_1HttpRoute.html">HttpRoute</a>* WebRTCServer::findHttpRoute </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a74f5de3572ef64def2be980efafd45e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74f5de3572ef64def2be980efafd45e8">&#9670;&nbsp;</a></span>findWebsocketRoute()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a>* WebRTCServer::findWebsocketRoute </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a2221f9f1ba155c17f6d1f4e99057f7ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2221f9f1ba155c17f6d1f4e99057f7ba">&#9670;&nbsp;</a></span>freeRoute() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void WebRTCServer::freeRoute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structWebRTCServer_1_1HttpRoute.html">HttpRoute</a> *&#160;</td>
          <td class="paramname"><em>route</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5e9b56063cac461e703148315bbf854e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e9b56063cac461e703148315bbf854e">&#9670;&nbsp;</a></span>freeRoute() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void WebRTCServer::freeRoute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a> *&#160;</td>
          <td class="paramname"><em>route</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad3927daf271af5dead4f21a9a2ff1ac3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3927daf271af5dead4f21a9a2ff1ac3">&#9670;&nbsp;</a></span>GetSTUNServer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* WebRTCServer::GetSTUNServer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the STUN server being used. </p>
<p>STUN servers are used during ICE/NAT and allow a local device to determine its public IP address. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__network.html#ga99b10c89b7c09a0c753f241f9e74c894" title="Default STUN server used for WebRTC.">WEBRTC_DEFAULT_STUN_SERVER</a> </dd></dl>

</div>
</div>
<a id="adbcd3355338382847a31e5e49f5caf97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbcd3355338382847a31e5e49f5caf97">&#9670;&nbsp;</a></span>HasHTTPS()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool WebRTCServer::HasHTTPS </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return true if the server is using HTTPS. </p>
<p>For HTTPS to be enabled, SSL cert/key files must have been provided to <a class="el" href="group__network.html#a49631104e63bd4368ecb0217c402b4e7" title="Create a WebRTC server on this port.">WebRTCServer::Create()</a>. </p>

</div>
</div>
<a id="aed89521ec525e2a3c24757d2444f388d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed89521ec525e2a3c24757d2444f388d">&#9670;&nbsp;</a></span>init()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool WebRTCServer::init </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a32e99e59a4d0c536e7edcfbbd2dcdaee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32e99e59a4d0c536e7edcfbbd2dcdaee">&#9670;&nbsp;</a></span>IsThreaded()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool WebRTCServer::IsThreaded </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return true if the server is running in it's own thread. </p>
<p>Otherwise, <a class="el" href="group__network.html#ac49ab53764ab184efe91a8c7040be7dc" title="Process incoming requests on the server.">ProcessRequests()</a> must be called periodically. </p>

</div>
</div>
<a id="a495cc40be78a8cda04c03e30242ccbfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a495cc40be78a8cda04c03e30242ccbfa">&#9670;&nbsp;</a></span>onHttpDefault()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void WebRTCServer::onHttpDefault </td>
          <td>(</td>
          <td class="paramtype">SoupServer *&#160;</td>
          <td class="paramname"><em>soup_server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SoupMessage *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GHashTable *&#160;</td>
          <td class="paramname"><em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SoupClientContext *&#160;</td>
          <td class="paramname"><em>client_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad44d43978599476a12539802ff434d21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad44d43978599476a12539802ff434d21">&#9670;&nbsp;</a></span>onHttpRequest()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void WebRTCServer::onHttpRequest </td>
          <td>(</td>
          <td class="paramtype">SoupServer *&#160;</td>
          <td class="paramname"><em>soup_server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SoupMessage *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GHashTable *&#160;</td>
          <td class="paramname"><em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SoupClientContext *&#160;</td>
          <td class="paramname"><em>client_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aa4b1d80e74f1bcdcd5e5366ca36e50a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4b1d80e74f1bcdcd5e5366ca36e50a2">&#9670;&nbsp;</a></span>onWebsocketClosed()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void WebRTCServer::onWebsocketClosed </td>
          <td>(</td>
          <td class="paramtype">SoupWebsocketConnection *&#160;</td>
          <td class="paramname"><em>connection</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0b94ce7618d8d4c7a8d4e66f674f958e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b94ce7618d8d4c7a8d4e66f674f958e">&#9670;&nbsp;</a></span>onWebsocketMessage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void WebRTCServer::onWebsocketMessage </td>
          <td>(</td>
          <td class="paramtype">SoupWebsocketConnection *&#160;</td>
          <td class="paramname"><em>connection</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SoupWebsocketDataType&#160;</td>
          <td class="paramname"><em>data_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GBytes *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a7d50ecf2c197872b45d86adc5aeba0da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d50ecf2c197872b45d86adc5aeba0da">&#9670;&nbsp;</a></span>onWebsocketOpened()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void WebRTCServer::onWebsocketOpened </td>
          <td>(</td>
          <td class="paramtype">SoupServer *&#160;</td>
          <td class="paramname"><em>server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SoupWebsocketConnection *&#160;</td>
          <td class="paramname"><em>connection</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SoupClientContext *&#160;</td>
          <td class="paramname"><em>client_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac7e9dc3e13c0d61c2b85819ef88fc5b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7e9dc3e13c0d61c2b85819ef88fc5b7">&#9670;&nbsp;</a></span>printRouteInfo()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string WebRTCServer::printRouteInfo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a> *&#160;</td>
          <td class="paramname"><em>route</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac49ab53764ab184efe91a8c7040be7dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac49ab53764ab184efe91a8c7040be7dc">&#9670;&nbsp;</a></span>ProcessRequests()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool WebRTCServer::ProcessRequests </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em> = <code>false</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="group__threads.html#classProcess" title="Static functions for retrieving information about the running process.">Process</a> incoming requests on the server. </p>
<p>If set to blocking, the function can wait indefinitely for requests. This should only be called externally if the server was created with threaded=false </p>

</div>
</div>
<a id="aeb70147a334c7f4aa526523707d316b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb70147a334c7f4aa526523707d316b9">&#9670;&nbsp;</a></span>Release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WebRTCServer::Release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Release a reference to the server instance. </p>
<p>Server will be shut down when the reference count reaches zero. </p>

</div>
</div>
<a id="af67a297932aefb380d6f691c23e2a4e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af67a297932aefb380d6f691c23e2a4e0">&#9670;&nbsp;</a></span>runThread()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void* WebRTCServer::runThread </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="acf3e2efff7428476b75b74f5199bc06b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf3e2efff7428476b75b74f5199bc06b">&#9670;&nbsp;</a></span>mHasHTTPS</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool WebRTCServer::mHasHTTPS</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3afcb67c4dfc05a2cf80bac068b97146"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3afcb67c4dfc05a2cf80bac068b97146">&#9670;&nbsp;</a></span>mHttpRoutes</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="structWebRTCServer_1_1HttpRoute.html">HttpRoute</a>*&gt; WebRTCServer::mHttpRoutes</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a437e4568ee60de9a5e94dfe62763e2fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a437e4568ee60de9a5e94dfe62763e2fc">&#9670;&nbsp;</a></span>mPeerCount</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t WebRTCServer::mPeerCount</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a4c5e2f97d7cbd9cf4083aeff416dc5cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c5e2f97d7cbd9cf4083aeff416dc5cc">&#9670;&nbsp;</a></span>mPort</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t WebRTCServer::mPort</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a1eb643c9200b6229942cc5e7bf8c8f56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1eb643c9200b6229942cc5e7bf8c8f56">&#9670;&nbsp;</a></span>mRefCount</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t WebRTCServer::mRefCount</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a357507a6bd6da2cb41e90148f226b740"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a357507a6bd6da2cb41e90148f226b740">&#9670;&nbsp;</a></span>mSoupServer</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">SoupServer* WebRTCServer::mSoupServer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac00aed03b4a8aa98ae5b3f5088a80f9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac00aed03b4a8aa98ae5b3f5088a80f9a">&#9670;&nbsp;</a></span>mSSLCertFile</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string WebRTCServer::mSSLCertFile</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a333a035d9db6dea40816f8685fda5b24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a333a035d9db6dea40816f8685fda5b24">&#9670;&nbsp;</a></span>mSSLKeyFile</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string WebRTCServer::mSSLKeyFile</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ae4ec44a6d8bdcd422b38082689511c66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4ec44a6d8bdcd422b38082689511c66">&#9670;&nbsp;</a></span>mStunServer</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string WebRTCServer::mStunServer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a229d7bef55546e26fe49056465616831"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a229d7bef55546e26fe49056465616831">&#9670;&nbsp;</a></span>mThread</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__threads.html#classThread">Thread</a>* WebRTCServer::mThread</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a67b529a7a9e37f892fb93b7409a2035f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67b529a7a9e37f892fb93b7409a2035f">&#9670;&nbsp;</a></span>mWebsocketRoutes</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="structWebRTCServer_1_1WebsocketRoute.html">WebsocketRoute</a>*&gt; WebRTCServer::mWebsocketRoutes</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga1425b28c4289aa721ccbcdc804f1b511"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1425b28c4289aa721ccbcdc804f1b511">&#9670;&nbsp;</a></span>INET4_ADDRLEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INET4_ADDRLEN&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The size in bytes of an IPv4 address (4 bytes) This is meant to compliment POSIX's INET4_ADDRSTRLEN (16) </p>

</div>
</div>
<a id="gab0a486cc9b29e51019a796a67d452d8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab0a486cc9b29e51019a796a67d452d8c">&#9670;&nbsp;</a></span>INET6_ADDRLEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INET6_ADDRLEN&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The size in bytes of an IPv6 address (16 bytes) This is meant to compliment POSIX's INET6_ADDRSTRLEN (46) </p>

</div>
</div>
<a id="gaadcbced28f4da19dc28dafcb1caf262b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaadcbced28f4da19dc28dafcb1caf262b">&#9670;&nbsp;</a></span>LOG_NETWORK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LOG_NETWORK&#160;&#160;&#160;&quot;[network] &quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>LOG_NETWORK logging string. </p>

</div>
</div>
<a id="gaa7305b232ee51e64c18323093003a398"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa7305b232ee51e64c18323093003a398">&#9670;&nbsp;</a></span>LOG_RTSP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LOG_RTSP&#160;&#160;&#160;&quot;[rtsp]   &quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>RTSP logging prefix. </p>

</div>
</div>
<a id="ga14978cf9893d6b4dc89019227ac121e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga14978cf9893d6b4dc89019227ac121e7">&#9670;&nbsp;</a></span>LOG_WEBRTC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LOG_WEBRTC&#160;&#160;&#160;&quot;[webrtc] &quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>WebRTC logging prefix. </p>

</div>
</div>
<a id="gad453571ec9bbc7fc4e595298a9380e53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad453571ec9bbc7fc4e595298a9380e53">&#9670;&nbsp;</a></span>RTSP_DEFAULT_PORT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RTSP_DEFAULT_PORT&#160;&#160;&#160;8554</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default port used by RTSP server. </p>

</div>
</div>
<a id="ga0168a2334e9e1e13b83a665c8cce0742"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0168a2334e9e1e13b83a665c8cce0742">&#9670;&nbsp;</a></span>WEBRTC_DEFAULT_PORT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WEBRTC_DEFAULT_PORT&#160;&#160;&#160;41567</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default HTTP/websocket port used by the WebRTC server. </p>

</div>
</div>
<a id="ga99b10c89b7c09a0c753f241f9e74c894"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga99b10c89b7c09a0c753f241f9e74c894">&#9670;&nbsp;</a></span>WEBRTC_DEFAULT_STUN_SERVER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WEBRTC_DEFAULT_STUN_SERVER&#160;&#160;&#160;&quot;stun.l.google.com:19302&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default STUN server used for WebRTC. </p>
<p>STUN servers are used during ICE/NAT and allow a local device to determine its public IP address. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaa78c7398fa81f7f62aa233159d4d8d97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa78c7398fa81f7f62aa233159d4d8d97">&#9670;&nbsp;</a></span>SocketType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__network.html#gaa78c7398fa81f7f62aa233159d4d8d97">SocketType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TCP/UDP enumeration. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa78c7398fa81f7f62aa233159d4d8d97a180747545a72ff6d0fd0569e781aefd5"></a>SOCKET_UDP&#160;</td><td class="fielddoc"><p>flag indicating UDP datagram service (SOCK_DGRAM) </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa78c7398fa81f7f62aa233159d4d8d97a2843397fd39bd96681bca78a8aa03096"></a>SOCKET_TCP&#160;</td><td class="fielddoc"><p>flag indicating TCP virtual circuit service (SOCK_STREAM) </p>
</td></tr>
</table>

</div>
</div>
<a id="gabfc2d28deff979bf1183220b57b78bd4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabfc2d28deff979bf1183220b57b78bd4">&#9670;&nbsp;</a></span>WebRTCFlags</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__network.html#gabfc2d28deff979bf1183220b57b78bd4">WebRTCFlags</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flags for route decorators or peer state. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4a819f229f6bfeb116f686451ecdec02f0"></a>WEBRTC_PRIVATE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4a6679628f8219a94c62e06c70190bbf93"></a>WEBRTC_PUBLIC&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4ae076480a0c0d9a717f926b7cda1744fd"></a>WEBRTC_AUDIO&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4a98eb7641bdbb1edc5fe77bdd3e3650ab"></a>WEBRTC_VIDEO&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4add7aa55d55c61e54ef02a9d6561b38d3"></a>WEBRTC_SEND&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4aa0b0d71eedf0e9cb89dad480acf2a808"></a>WEBRTC_RECEIVE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4a25abb9f2f31e749534b50835291d40f0"></a>WEBRTC_MULTI_CLIENT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4a66831e34a5556976064e4d62e5fcc753"></a>WEBRTC_PEER_CONNECTING&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4ad0e08bdd9c1c0a10e019235f9e341278"></a>WEBRTC_PEER_CONNECTED&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4a02bfc67384ac6c23bde10f88d829fb09"></a>WEBRTC_PEER_STREAMING&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggabfc2d28deff979bf1183220b57b78bd4a1a11199124c60fea07d424d28aaa072c"></a>WEBRTC_PEER_CLOSED&#160;</td><td class="fielddoc"></td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga604bb0e239d02117b959fda9ffd28c9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga604bb0e239d02117b959fda9ffd28c9a">&#9670;&nbsp;</a></span>getHostByName() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string getHostByName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>retries</em> = <code>10</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Resolve the IP address of a given hostname or domain using DNS lookup, and return it as a string. </p>
<p>This uses the system function gethostbyname() and supports both IPv6/IPv6 addresses.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>the hostname to lookup. </td></tr>
    <tr><td class="paramname">retries</td><td>the number of times to retry the lookup should it fail. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the IP address in string format, or an empty string if an error occurred. </dd></dl>

</div>
</div>
<a id="gab8ffc5329146c2db42c61016dcc54c76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab8ffc5329146c2db42c61016dcc54c76">&#9670;&nbsp;</a></span>getHostByName() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t getHostByName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ipAddress</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>retries</em> = <code>10</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Resolve the IP address of a given hostname or domain using DNS lookup. </p>
<p>This uses the system function gethostbyname() and supports both IPv6/IPv6 addresses.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>the hostname or domain name to lookup. </td></tr>
    <tr><td class="paramname">ipAddress</td><td>output pointer to buffer that the IPv4 or IPv6 address will be written to. this buffer should be up to 16 bytes long for supporting IPv6 addresses, or 4 bytes long for only supporting IPv4 addresses. </td></tr>
    <tr><td class="paramname">size</td><td>the size of the ipAddress buffer (4 bytes for IPv6 or 16 bytes for IPv6) </td></tr>
    <tr><td class="paramname">retries</td><td>the number of times to retry the lookup should it fail.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the size in bytes of the ipAddress that was written (4 bytes for IPv6 or 16 bytes for IPv6) 0 is returned if an error occurred, or the provided ipAddress buffer was not large enough. </dd></dl>

</div>
</div>
<a id="ga4eeeacba2fc1201c43d42a4f5145b825"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4eeeacba2fc1201c43d42a4f5145b825">&#9670;&nbsp;</a></span>getHostname()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string getHostname </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the host system's network hostname. </p>
<dl class="section return"><dt>Returns</dt><dd>the system hostname, or an empty string on error. </dd></dl>

</div>
</div>
<a id="gab929e511b041783d8dd4650f17d80dbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab929e511b041783d8dd4650f17d80dbd">&#9670;&nbsp;</a></span>getNetworkInterfaces()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="group__network.html#structNetworkInterface">NetworkInterface</a>&gt; getNetworkInterfaces </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve info about the different IPv4/IPv6 network interfaces of the system. </p>
<p>Internally this uses the system function getifaddrs() </p><dl class="section return"><dt>Returns</dt><dd>a list of network interfaces, or an empty list if an error occurred. </dd></dl>

</div>
</div>
<a id="ga5eafb2061e9a44862e8fd1a59bea2fe4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5eafb2061e9a44862e8fd1a59bea2fe4">&#9670;&nbsp;</a></span>IPv4AddressFromStr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool IPv4AddressFromStr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>ipAddress</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert an IPv4 address string in "xxx.xxx.xxx.xxx" format to binary representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the IPv4 string, in "xxx.xxx.xxx.xxx" format </td></tr>
    <tr><td class="paramname">ipAddress</td><td>output pointer to converted IPv4 address, in network byte order.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true, if str was a valid IPv4 address and the conversion was successful. false, if the conversion failed. </dd></dl>

</div>
</div>
<a id="ga8d1b5dfaf28b99b9d86b565a242ceab8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d1b5dfaf28b99b9d86b565a242ceab8">&#9670;&nbsp;</a></span>IPv4AddressToStr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string IPv4AddressToStr </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ipAddress</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return text string of IPv4 address in "xxx.xxx.xxx.xxx" format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ipAddress</td><td>IPv4 address, supplied in network byte order. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga35c4991d07188de821f18cfe80cdd085"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga35c4991d07188de821f18cfe80cdd085">&#9670;&nbsp;</a></span>IPv6AddressFromStr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool IPv6AddressFromStr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ipAddress</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert an IPv6 address string in "x:x:x:x:x:x:x:x" hexadecimal format to 128-bit binary representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the IPv6 string, in "x:x:x:x:x:x:x:x" hexadecimal format </td></tr>
    <tr><td class="paramname">ipAddress</td><td>output pointer to converted 128-bit IPv6 address (16 bytes long), in network byte order. this buffer can be a variety of representations (commonly uint8[16] or uint16[8]), as long as it's at least 128 bits (16 bytes) long.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true, if str was a valid IPv6 address and the conversion was successful. false, if the conversion failed. </dd></dl>

</div>
</div>
<a id="ga600322ef1ffde24816714c7e5a0c5624"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga600322ef1ffde24816714c7e5a0c5624">&#9670;&nbsp;</a></span>IPv6AddressToStr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string IPv6AddressToStr </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ipAddress</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return text string of IPv6 address in "x:x:x:x:x:x:x:x" hexadecimal format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ipAddress</td><td>pointer to 128-bit IPv6 address (16 bytes long), in network byte order. this buffer can be a variety of representations (commonly uint8[16] or uint16[8]), as long as it's at least 128 bits (16 bytes) long. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gad1ca82becf0918d589ec9938b51a977b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad1ca82becf0918d589ec9938b51a977b">&#9670;&nbsp;</a></span>printNetworkInterfaces()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void printNetworkInterfaces </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="group__network.html#structNetworkInterface">NetworkInterface</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>interfaces</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print out a list of network interfaces. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Mar 28 2023 14:27:58 for Jetson Inference by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
